home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / COAXSTUB.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-27  |  6.9 KB  |  268 lines

  1. 10  'COAXSTUB - Stubs for Coaxial Lines - 03 JUN 96 rev.27 SEP 96
  2. 20  CLS:KEY OFF
  3. 30  IF EX$=""THEN EX$="EXIT"
  4. 40  IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
  5. 50  COMMON EX$
  6. 60  COLOR 7,0,1
  7. 70  ON ERROR GOTO 100
  8. 80  GOTO 130
  9. 90  '
  10. 100  IF ERR=1 AND ERL=1500 THEN COLOR 7,0:RESUME 1820
  11. 110  BEEP:PRINT "Error";ERR;"in line";ERL:END
  12. 120  '
  13. 130  PI=3.14159
  14. 140  UL$=STRING$(80,205)
  15. 150  L$="#####.###"
  16. 160  V$="####.###"
  17. 170  X$=STRING$(80,32)
  18. 180  DIM C$(50,7)    'coax data
  19. 190  '
  20. 200  '.....read data
  21. 210  OPEN"I",1,"\data\coaxial.fil"
  22. 220  N=50    'no.of data groups
  23. 230   FOR Z=1 TO N
  24. 240    FOR Y=1 TO 7
  25. 250    INPUT#1, C$(Z,Y)
  26. 260    NEXT Y
  27. 270   NEXT Z
  28. 280  CLOSE
  29. 290  '
  30. 300  '.....start
  31. 310  CLS
  32. 320  B=0:C=0:E=0:I=0:O=0:U=0:V=0:ZO=0
  33. 330  COLOR 15,2
  34. 340  PRINT " STUBS for COAXIAL TRANSMISSION LINES";
  35. 350  PRINT TAB(57)"by George Murphy VE3ERP ";
  36. 360  COLOR 1,0:PRINT STRING$(80,223);
  37. 370  COLOR 7,0
  38. 380  GOSUB 2320
  39. 390  PRINT UL$;
  40. 400  PRINT " Press number in < > to choose standard units of measure:"
  41. 410  PRINT UL$;
  42. 420  PRINT "   < 1 >  Metric"
  43. 430  PRINT "   < 2 >  U.S.A./Imperial"
  44. 440  PRINT UL$;
  45. 450  PRINT "     or Press < 0 > to EXIT....."
  46. 460  Z$=INKEY$
  47. 470  IF Z$="0"THEN CLS:CHAIN GO$
  48. 480  IF Z$="1"THEN UM=0.3048:UM$="m.":GOTO 520
  49. 490  IF Z$="2"THEN UM=1:UM$="ft.":GOTO 520
  50. 500  GOTO 460
  51. 510  '
  52. 520  '.....transmission line stubs
  53. 530  CLS
  54. 540  LOCATE 1:COLOR 0,7:T=1
  55. 550  LOCATE ,T:PRINT "           COAXIAL TRANSMISSION LINE STUBS           "
  56. 560  LOCATE ,T:PRINT "      CALLDEFSNGSOUNDSOUND Lg < W/4 SOUNDSOUNDDEFDBLCALL        CALLDEFSNGSOUNDSOUND Lg < W/4 SOUNDSOUNDDEFDBLCALL   "
  57. 570  LOCATE ,T:PRINT "      ERRTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION        ERRTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION   "
  58. 580  LOCATE ,T:PRINT " VARPTRSOUNDSOUNDDEFDBL SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND   VARPTRSOUNDSOUNDDEFDBL SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR  "
  59. 590  LOCATE ,T:PRINT " Z in ERLFNTHENTHENTHENTHENshieldTHENTHENTHENTHENTHENSAVE   Z in ERLFNTHENTHENTHENTHENshieldTHENTHENTHENTHENFNSAVECALL  "
  60. 600  LOCATE ,T:PRINT " CLSSOUNDSOUNDDEFDBL SOUND'                   CLSSOUNDSOUNDDEFDBL SOUND'              CLSSOUND'  "
  61. 610  COLOR 7,0
  62. 620  LOCATE ,T:PRINT "CSRLIN INDUCTIVE (open) STUB CSRLIN CAPACITIVE (shorted) STUB CSRLIN"
  63. 630  COLOR 0,7
  64. 640  LOCATE ,T:PRINT "     (ref. 1996 ARRL HANDBOOK, pp.16.21 & 16.22)     "
  65. 650  COLOR 7,0
  66. 660  T=55:LOCATE 3
  67. 670  LOCATE ,T:PRINT "Transmission line stubs  "
  68. 680  LOCATE ,T:PRINT "should extend away from  "
  69. 690  LOCATE ,T:PRINT "the line at an angle as  "
  70. 700  LOCATE ,T:PRINT "close to 90<UNK! {00F8}> as possible."
  71. 710  LOCATE 9:PRINT UL$;
  72. 720  GOSUB 750
  73. 730  GOTO 870
  74. 740  '
  75. 750  '.....cable table
  76. 760  FOR Z=1 TO 9
  77. 770  FOR Y=0 TO 36 STEP 9
  78. 780  Z$=STR$(Z+Y)':IF LEN(Z$)<3 THEN Z$=" "+Z$:MID$(Z$,2)="0"
  79. 790  Y$=Z$+": "+C$(Z+Y,1)
  80. 800  IF LEN(Y$)<16 THEN Y$=Y$+" ":GOTO 800
  81. 810  IF Z<10 AND Y=0 THEN Y$=LEFT$(Y$,15)
  82. 820  IF Z+Y=45 THEN 840
  83. 830  PRINT Y$;
  84. 840  NEXT Y
  85. 850  NEXT Z
  86. 860  RETURN
  87. 870  PRINT UL$;
  88. 880  '
  89. 890  INPUT " ENTER: An item number from above list to select coaxial cable";N
  90. 900  IF N>=1 AND N<=44 THEN 920
  91. 910  BEEP:LOCATE CSRLIN-1:PRINT X$;:LOCATE CSRLIN-1:GOTO 890
  92. 920  VIEW PRINT 10 TO 24:CLS:VIEW PRINT
  93. 930  FOR Z=1 TO 8:LOCATE Z,55:PRINT STRING$(26,32);:NEXT Z
  94. 940  T$=C$(N,1)
  95. 950  ZIN=VAL(C$(N,5))
  96. 960  E=VAL(C$(N,3))
  97. 970  VF=1/SQR(E)
  98. 980  COLOR 15,4
  99. 990  LOCATE 1,54:PRINT " ";T$;" COAX CABLE "
  100. 1000  COLOR 7,0
  101. 1010  LOCATE ,55:PRINT "Impedance Z (ohms) =";USING"###.#";ZIN
  102. 1020  LOCATE ,55:PRINT "Dielectric constant=";USING"##.##";E
  103. 1030  LOCATE ,55:PRINT "Velocity factor....=";USING".####";VF
  104. 1040  LOCATE ,55:PRINT "XL= Inductive Reactance
  105. 1050  LOCATE ,55:PRINT " L= Inductance"
  106. 1060  LOCATE ,55:PRINT "XC= Capacitive Reactance"
  107. 1070  LOCATE ,55:PRINT " C= Capacitance"
  108. 1080  LOCATE 10
  109. 1090  '
  110. 1100  INPUT " ENTER: Frequency in MHz......";FO
  111. 1110  COLOR 7,0
  112. 1120  VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 10
  113. 1130  WL=300/FO          'wavelength in free space
  114. 1140  W=300/(SQR(E)*FO)  'electrical wavelength
  115. 1150  '
  116. 1160  T=9
  117. 1170  PRINT TAB(T)"Frequency.......................";USING V$;FO;
  118. 1180  PRINT " MHz    =";
  119. 1190  PRINT USING V$;300/FO;:PRINT " metres"
  120. 1200  PRINT TAB(T)"Electrical wavelength.........w=";USING V$;W;
  121. 1210  PRINT " metres =";USING V$;W/0.3048;:PRINT " feet"
  122. 1220  PRINT TAB(T)"Electrical DEFSTR-wavelength.....w/4=";USING V$;W/4;
  123. 1230  PRINT " metres =";USING V$;W/4/0.3048;:PRINT " feet"
  124. 1240  PRINT UL$;
  125. 1250  PRINT " TYPICAL VALUES:";TAB(38)"INDUCTIVE STUB";
  126. 1260  PRINT TAB(58)"CAPACITIVE STUB"
  127. 1270  PRINT TAB(9)"Lg/w";TAB(16)"Lg(m.)";TAB(25)"Lg(ft)";
  128. 1280  PRINT TAB(38);"XL(-)";TAB(48)"L(>H)";TAB(58)"XC(-)";TAB(68)"C(pF)"
  129. 1290  '
  130. 1300  K=-0.05
  131. 1310  FOR Z=1 TO 7
  132. 1320  IF Z=4 OR Z=5 THEN K=K+0.025:GOTO 1340
  133. 1330  K=K+0.05
  134. 1340  LG=K*W
  135. 1350  '
  136. 1360  IF K=0 THEN XL=0:XC=10^6:GOTO 1410
  137. 1370  IF K=0.25 THEN XC=0:XL=10^6:GOTO 1410
  138. 1380  XC=ZIN/TAN(2*PI*LG/W):      C=10^6/(2*PI*FO*XC)
  139. 1390  XL=ZIN/(1/TAN(2*PI*LG/W)):  L=XL/(2*PI*FO)
  140. 1400  '
  141. 1410  PRINT TAB(9)USING ".###";K;
  142. 1420  PRINT TAB(13);USING L$;LG;
  143. 1430  PRINT TAB(22);USING L$;LG/0.3048;
  144. 1440  IF K<=0   THEN PRINT TAB(38)"- 0 -     - 0 -     - / -     - 0 -":GOTO 1500
  145. 1450  IF K>=0.25 THEN PRINT TAB(38)"- / -     - / -     - 0 -     - / -":GOTO 1500
  146. 1460  PRINT TAB(34)USING L$;XL;
  147. 1470  PRINT TAB(44)USING L$;L;
  148. 1480  PRINT TAB(54)USING L$;XC;
  149. 1490  PRINT TAB(64)USING L$;C;
  150. 1500  NEXT Z
  151. 1510  GOSUB 2550   'hardcopy
  152. 1520  '
  153. 1530  '.....sub-menu
  154. 1540  COLOR 7,0
  155. 1550  LOCATE 25,1:PRINT X$;
  156. 1560  LOCATE 24,3:COLOR 15,2
  157. 1570  PRINT " Press a number for a specific: 1-Frequency, 2-Length, ";
  158. 1580  PRINT "3-Inductance,        ";
  159. 1590  LOCATE 25,3
  160. 1600  PRINT " 4-Capacitance, 5-Inductive Reactance, 6-Capacitive Reactance,";
  161. 1610  PRINT " or 7 to QUIT ";
  162. 1620  '
  163. 1630  COLOR 7,0
  164. 1640  Z$=INKEY$:IF Z$=""THEN 1640
  165. 1650  IF VAL(Z$)<1 OR VAL(Z$)>7 THEN 1640
  166. 1660  LOCATE 25,1:PRINT X$;
  167. 1670  IF Z$="1"THEN 1840
  168. 1680  IF Z$="2"THEN 1750
  169. 1690  IF Z$="3"THEN 1880
  170. 1700  IF Z$="4"THEN 2090
  171. 1710  IF Z$="5"THEN 1990
  172. 1720  IF Z$="6"THEN 2210
  173. 1730  IF Z$="7"THEN 2520
  174. 1740  '
  175. 1750  '.....length
  176. 1760  COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
  177. 1770  COLOR 0,7:PRINT " ENTER: Specified length....(";UM$;")";:INPUT LG
  178. 1780  IF UM=1 THEN LG=LG*0.3048
  179. 1790  K=LG/W
  180. 1800  LOCATE CSRLIN-1:PRINT X$;
  181. 1810  LOCATE CSRLIN-1,8:GOTO 1360
  182. 1820  GOSUB 2550:GOTO 1530
  183. 1830  '
  184. 1840  '.....frequency
  185. 1850  COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
  186. 1860  COLOR 0,7:GOTO 1100
  187. 1870  '
  188. 1880  '.....inductance
  189. 1890  COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
  190. 1900  COLOR 0,7:LOCATE 23
  191. 1910  INPUT " ENTER: Inductance (>H)";L
  192. 1920  XL=L*2*PI*FO
  193. 1930  LG=W*ATN(XL/ZIN)/(2*PI)
  194. 1940  K=LG/W
  195. 1950  LOCATE CSRLIN-1:PRINT X$;
  196. 1960  LOCATE CSRLIN-1,8:GOTO 1360
  197. 1970  GOSUB 2550:GOTO 1530
  198. 1980  '
  199. 1990  '.....inductive reactance
  200. 2000  COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
  201. 2010  COLOR 0,7:LOCATE 23
  202. 2020  INPUT " ENTER: Inductance Reactance XL (ohms)";XL
  203. 2030  LG=W*ATN(XL/ZIN)/(2*PI)
  204. 2040  K=LG/W
  205. 2050  LOCATE CSRLIN-1:PRINT X$;
  206. 2060  LOCATE CSRLIN-1,8:GOTO 1360
  207. 2070  GOSUB 2550:GOTO 1530
  208. 2080  '
  209. 2090  '.....capacitance
  210. 2100  COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
  211. 2110  COLOR 0,7:LOCATE 23
  212. 2120  INPUT " ENTER: Capacitance (pF)";C
  213. 2130  IF C<=0 THEN LG=0:K=0:GOTO 2170
  214. 2140  XC=10^6/(2*PI*FO*C)
  215. 2150  LG=W*ATN(ZIN/XC)/(2*PI)
  216. 2160  K=LG/W
  217. 2170  LOCATE CSRLIN-1:PRINT X$;
  218. 2180  LOCATE CSRLIN-1,8:GOTO 1360
  219. 2190  GOSUB 2550:GOTO 1530
  220. 2200  '
  221. 2210  '.....capacitive reactance
  222. 2220  COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
  223. 2230  COLOR 0,7:LOCATE 23
  224. 2240  INPUT " ENTER: Capacitance Reactance XC (ohms)";XC
  225. 2250  IF XC<=0 THEN K=0.25:LG=W/4:GOTO 2280
  226. 2260  LG=W*ATN(ZIN/XC)/(2*PI)
  227. 2270  K=LG/W
  228. 2280  LOCATE CSRLIN-1:PRINT X$;
  229. 2290  LOCATE CSRLIN-1,8:GOTO 1360
  230. 2300  GOSUB 2550:GOTO 1530
  231. 2310  '
  232. 2320  '.....diagram
  233. 2330  J=14
  234. 2340  COLOR 0,7
  235. 2350  LOCATE ,J:PRINT "                                                      "
  236. 2360  LOCATE ,J:PRINT " ERRTHENTHENshieldTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION    ERRTHENTHENshieldTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION "
  237. 2370  LOCATE ,J:PRINT " SOUNDSOUNDSOUNDSOUNDlineSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND    SOUNDSOUNDSOUNDSOUNDlineSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND "
  238. 2380  LOCATE ,J:PRINT " ERLTHENTHENTHENTHENTHENTHENTHENTHENTHENFNTHENCALLTHENFNTHENTHENTHENTHENTHENTHENTHENTHENSAVE    ERLTHENTHENTHENTHENTHENTHENTHENTHENTHENFNTHENCALLTHENFNTHENTHENTHENTHENTHENTHENTHENTHENSAVE "
  239. 2390  LOCATE ,J:PRINT "           OPEN CALL OPEN                       OPEN CALL OPEN          "
  240. 2400  LOCATE ,J:PRINT "           OPEN CALL OPEN                       OPEN CALL OPEN          "
  241. 2410  LOCATE ,J:PRINT "           OPEN CALL OPEN                       OPEN CALL OPEN          "
  242. 2420  LOCATE ,J:PRINT "           OPEN CALL OPEN                      VARPTR<0xB6!> CALL OPEN          "
  243. 2430  LOCATE ,J:PRINT "           NOTSOUNDCALLSOUNDMERGE                      CALLNOTSOUNDCALLSOUNDMERGE          "
  244. 2440  LOCATE ,J:PRINT "                                      CLSSOUNDSOUND'            "
  245. 2450  LOCATE ,J:PRINT "         OPEN STUB                 SHORTED STUB       "
  246. 2460  LOCATE ,J:PRINT "                                                      "
  247. 2470  COLOR 7,0
  248. 2480  RETURN
  249. 2490  '
  250. 2500  '.....end
  251. 2510  GOSUB 2550
  252. 2520  ERASE C$:GOTO 300   'start
  253. 2530  END
  254. 2540  '
  255. 2550  'HARDCOPY
  256. 2560  GOSUB 2670:LOCATE 25,2:COLOR 14,6
  257. 2570  PRINT " Press 1 to print screen, 2 to print screen & ";
  258. 2580  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  259. 2590  Z$=INKEY$:IF Z$="3"THEN GOSUB 2670:RETURN
  260. 2600  IF Z$="1"OR Z$="2"THEN GOSUB 2670:GOTO 2620
  261. 2610  GOTO 2590
  262. 2620  FOR QX=1 TO 24:FOR QY=1 TO 80
  263. 2630  LPRINT CHR$(SCREEN(QX,QY));
  264. 2640  NEXT QY:NEXT QX
  265. 2650  IF Z$="2"THEN LPRINT CHR$(12)
  266. 2660  GOTO 2560
  267. 2670  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  268.